אני משתמש בפריימוורק yii ורציתי לשאול משהו, אם אני צריך להשתמש בmodel איפה עדיף לעשות זאת
בקובץ הקונטרולר, נגיד:
$this->render('profile', array('user' => User::findUser(5)));


או שגם אם עושים את זה בקובץ view זה בסדר?
נגיד קובץ view:
$user = User::findUser(5);
echo $user;


כי טכנית, שני המקרים עובדים. השאלה מה עדיף, והאם יש בעיה כולשהי עם השני...

5 תשובות

avatar ענה intval ב 02 לאוגוסט 2014 #

בקובץ וויו אף פעם לא. המטרה שלא היא לקבל כבר את מה שצריך להציג בצורה מוכנה.
מלבד הסיבה הרעיונית (שהוא לא מיועד בשביל זה) ישנה עוד סיבה וזה שאמנם לאבמקרה שלך, אבל וויו אחד שלמשל מכיל טבלת משתמשים, יכול לשמש הרבה קונטרולרים. במקרה אחד תרצה להציג את המשתמשים בצורה אחת ובמקרה אחר בצורה אחרת, מהסוף להתחלה, או לפי סדר אחר או חמש משתמשים אחרים. התצוגה תישאר אותו דבר, אך התוכן שהשקונטרולרים יעבירו לשם יהיה שונה ממקרה למקרה.

avatar ענה hebrewUrls ב 02 לאוגוסט 2014 #

ועוד שאלה שקשורה למסד:
איך עדיף ונהוג לקרוא לעמודות במסד, עם השם של הטבלה בהתחלה, נגיד article_title
או שעדיף בלי, ופשוט title

איך זה כאן באתר לדוגמה?

avatar ענה OrelBeY ב 02 לאוגוסט 2014 #

בטבלת article אין טעם לקרוא לעמודה בשם article_*, ולא עושים את זה. המקרה החריג היחיד שעולה לי בראש זה אם עלולים להבין את שם העמודה לא נכון, והוספת קידומת של שם הטבלה יעזור להבנה. (אני לא מצליח לחשוב על דוגמה, ומקרה כזה יהיה חריג מאוד או בכלל לא יקרה.)

נ.ב. כדאי להקדיש לכל שאלה "דיון" משלה - יותר מסודר ויעזור לאחרים למצוא את התשובות לשאלה. :-)

avatar ענה intval ב 02 לאוגוסט 2014 #

מספיק שם עמודה בלבד.
כשאתה כותב את שאילתת הsql אתה יכול להוסיף בתחילת שם העמודה גם את שם הטבלה למקרה שאתה מרגיש שבלעדיה השאילתה לא ברורה מספיק:

select users.id from users where users.mail = 'bla@bla'

avatar ענה hebrewUrls ב 02 לאוגוסט 2014 #

אוקי, תודה רבה :)